﻿using Ewell.BizComponent.Service.Model.Request;
using Ewell.BizComponent.Service.Model.Response;

namespace Ewell.BizComponent.Service.IServer
{
    public interface IPaymentServer
    {
        /// <summary>
        /// 支付
        /// </summary>
        /// <param name="interfaceId"></param>
        /// <param name="paymentRequest"></param>
        /// <returns></returns>
        PaymentResp Pay(long interfaceId, PaymentReq paymentRequest);
        /// <summary>
        /// 查询余额
        /// </summary>
        /// <param name="interfaceId"></param>
        /// <param name="queryBalanceReq"></param>
        /// <returns></returns>
        QueryBalanceResp QueryBalance(long interfaceId, QueryBalanceReq queryBalanceReq);
        /// <summary>
        /// 退款
        /// </summary>
        /// <param name="interfaceId"></param>
        /// <param name="refundRequest"></param>
        /// <returns></returns>
        RefundResp Refund(long interfaceId, RefundReq refundRequest);
        /// <summary>
        /// 获取支付金额
        /// </summary>
        /// <param name="interfaceId"></param>
        /// <param name="queryBalanceReq"></param>
        /// <returns></returns>
        QueryPayAmountResponse QueryPaymentAmount(long interfaceId, QueryPayAmountRequest queryPaymentAmount);
    }
}